//
//  UINavigationController+QTZ.h
//  QTZ
//
//  Created by ski on 2017/7/5.
//  Copyright © 2017年 ski. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "iOSBlocksProtocol.h"

@interface UINavigationController (QTZ)

/**
 *  push一个新的ViewController
 *
 *  @param viewController 需要push的ViewController
 *  @param animated       是否要做进场动画
 *  @param completion     完成push之后的回调方法
 */
- (void)pushViewController:(UIViewController *)viewController
                  animated:(BOOL)animated
              onCompletion:(VoidBlock)completion;

/**
 *  pop一个需要pop的ViewController
 *
 *  @param viewController 需要pop的ViewController
 *  @param animated       是否要做进场动画
 *  @param completion     完成pop后的回调方法
 */
- (void)popToViewController:(UIViewController *)viewController
                   animated:(BOOL)animated
               onCompletion:(VoidBlock)completion;

/**
 *  pop当前最顶部的ViewController
 *
 *  @param animated   是否要做进场动画
 *  @param completion 完成pop后的回调方法
 */
- (void)popViewControllerAnimated:(BOOL)animated
                     onCompletion:(VoidBlock)completion;

/**
 *  pop到第一层ViewController
 *
 *  @param animated   是否要做进场动画
 *  @param completion 完成pop后的回调方法
 */
- (void)popToRootViewControllerAnimated:(BOOL)animated
                           onCompletion:(VoidBlock)completion;


@end
